// import Vue from "vue";
import App from "./App.vue";
import router from "./router";
//引入mock/mockServe文件
import "@/mock/mockServe";

Vue.config.productionTip = false;
import Header from "@/components/Header";
import Footer from "@/components/Footer";
import TypeNav from "@/components/typeNav";
import Pagination from "@/components/pagination";

Vue.component(Header.name, Header);
Vue.component(Footer.name, Footer);
Vue.component(TypeNav.name, TypeNav);
Vue.component(Pagination.name, Pagination);

import store from "./store";
import "@/utils/request"; //可写可不写
//引入路由守卫的文件夹，至少执行一次，要不然不干活
import "@/permisstion";
//统一引入
import * as ajax from "@/api";
//按需引入element-ui
import{Message,MessageBox} from 'element-ui';
import VueRouter from "vue-router";
Vue.prototype.$message = Message;
Vue.prototype.$alert = MessageBox.alert;
Vue.prototype.$msgbox = MessageBox;


new Vue({
  render: (h) => h(App),
  //注册路由器
  //这行代码的很重要的作用是啥?
  //底下这行可以导致 【任何组件】 身上动态添加两个属性$route与$router属性
  router,
  //底下这行代码可以导致[任何组件]身上都有一个$store这样的一个属性
  store,
  beforeCreate() {
    //this即为vm  vue类的实例
    Vue.prototype.$bus = this;
    //相当于给Vue.prototype添加一个动态属性$ajax,导致全部组件的VC都可以直接使用项目当中全部请求函数
    //组件不需要引入请求函数
    Vue.prototype.$ajax = ajax;
  },
}).$mount("#app");
